package com.weiquan.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * AI诊断记录实体类
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ai_diagnosis")
public class AiDiagnosis {

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户ID
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 诊断场景：1-职场纠纷，2-消费维权，3-租房矛盾，4-其他
     */
    @TableField("scenario")
    private Integer scenario;

    /**
     * 用户输入的问题描述
     */
    @TableField("problem_description")
    private String problemDescription;

    /**
     * 结构化输入数据（JSON格式）
     */
    @TableField("input_data")
    private String inputData;

    /**
     * AI诊断结果
     */
    @TableField("diagnosis_result")
    private String diagnosisResult;

    /**
     * 维权成功率（百分比）
     */
    @TableField("success_rate")
    private Integer successRate;

    /**
     * 关键影响因素
     */
    @TableField("key_factors")
    private String keyFactors;

    /**
     * 维权步骤建议
     */
    @TableField("suggested_steps")
    private String suggestedSteps;

    /**
     * 相关法条解读
     */
    @TableField("legal_analysis")
    private String legalAnalysis;

    /**
     * 推荐模板ID列表
     */
    @TableField("recommended_templates")
    private String recommendedTemplates;

    /**
     * 推荐案例ID列表
     */
    @TableField("recommended_cases")
    private String recommendedCases;

    /**
     * 诊断状态：0-进行中，1-已完成，2-失败
     */
    @TableField("status")
    private Integer status;

    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 是否删除：0-否，1-是
     */
    @TableLogic
    @TableField("is_deleted")
    private Integer isDeleted;
}